1. Technical Field
The present disclosure relates generally to debug operations and, more particularly, to efficient memory management during debug operations.
2. Related Art
The background description provided herein is for the purpose of generally presenting the context of the disclosure. Work of the presently named inventors, to the extent it is described in this background section, as well as aspects of the description that may not otherwise qualify as prior art at the time of filing, are neither expressly nor impliedly admitted as prior art against the present disclosure.
Errors or faults (i.e. “bugs”) in a computer program, or software program, often interfere with the proper operation of the computer program. Bugs can corrupt instructions of the computer program and/or variables in memory. Software programs embedded in a hardware device are referred to as firmware programs.
Computer programs known as “debuggers” test and “debug” (i.e. locate and eliminate) bugs in computer programs (e.g. software programs or firmware programs) that the debugger operates upon. Debuggers monitor the execution of the computer program in order to detect bugs. During a debug operation, debuggers often display or print output (i.e., data) generated by code of the computer program during execution. The output is generated based on print function commands that are executed at various points throughout the debug operation. Debug operations are often executed by firmware that can be included within various devices.
For example, network interfaces include firmware and associated memory to execute print function commands called for by debug programs. Typically, during a debug session of a computer program stored on the network device, data generated by the target computer program is output for analysis by a user/operator. Data is output in readable form to the user/operator based on the print function commands included within the debug program. Print function commands executed during a debug operation are referred to as debug print operations.
Debug print operations often require a significant amount of memory for storage. However, the memory that is typically available on various components (e.g. system-on-chip circuits) of the network interface that can be used during debug operations is scarce. As a result, performance of debug operations executed within the network interface fail to reach optimal levels.